package com.example.good.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.example.good.entity.PageVO;
import com.example.good.entity.StudentDO;
import com.example.good.entity.StudentsVO;
import com.example.good.entity.request.AddStudentToClassRequest;
import com.example.good.entity.request.StudentDeleteRequest;
import com.example.good.entity.request.StudentQueryRequest;

import java.util.List;

public interface StudentService extends IService<StudentDO> {
    
    List<StudentDO> getAllStudentByNameOrStudentId(String str);
    
    Boolean deleteStudentByStudentIds(List<String> studentIds);

    /**
     * 根据学生id获取学生详细信息
     * 
     * @param studentId 学生id
     * @return 返回一个对象
     */
    StudentsVO getStudentsDetail(String studentId);
    
    PageVO<StudentsVO> getAllStudentPage(StudentQueryRequest request);

    /**
     *  修改学生
     * @param studentsVO 修改的学生实体
     * @return
     */
    Boolean updateStudent(StudentsVO studentsVO);

    /**
     * 将学生从班级中删除
     *  
     * @param studentIds
     * @return
     */
    Boolean deleteStudentFromClass(List<String> studentIds);

    /**
     * 往班级添加学生
     * 
     * @param request 学生
     * @return
     */
    Boolean addStudentToClass(AddStudentToClassRequest request);

    /**
     * 查看没有加入班级的学生
     * @return
     */
    List<StudentDO> queryNoClassStudents();
}
